package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 25397
 * Date: 2022-03-24
 * Time: 21:55
 */
public class Demo11 {
    public static void main(String[] args) {
        Thread t=new Thread(()->{
           while(!Thread.currentThread().isInterrupted()){
               System.out.println("hello Thread");
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   System.out.println("一些收尾工作");
                   e.printStackTrace();
                   break;//触发异常后立即退出循环
               }
           }
        });
        t.start();

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //在主线程中，调用interrupt方法，来中断这个线程
        //t.interrupt的意思就是让t线程中断
        t.interrupt();
        //调用这个方法，可能产生两种情况：
        //1.如果t线程处于就绪状态，就是设置线程的标志位为true
        //2.如果t线程处于阻塞状态（sleep休眠了），就会触发一个InterruptException
    }
}
